package model;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;

/**
 *
 * @author Gruppe 5
 */
public class Salg
{
    Date dato = new java.util.Date();
    SimpleDateFormat formatter = new SimpleDateFormat("dd/MM-yyyy");

    String formatteretDato = formatter.format(dato);
    private int ordreNr;
    private Salgslinje salgsLinje;
    private ArrayList<Salgslinje> salgsLinjeSamling;
    private static int nextNr = 0;
    
    // Constructor
    public Salg(Salgslinje s)
    {
        this.salgsLinje = s;
    }

    public int getNyesteSalg()
    {
        return salgsLinjeSamling.size()-1;
    }
    
    public Salg()
    {
        salgsLinjeSamling = new ArrayList<Salgslinje>();
        ordreNr = nextNr;
        nextNr ++;
    }

    public int getOrdreNr()
    {
        return ordreNr;
    }

    public void setOrdreNr(int ordreNr)
    {
        this.ordreNr = ordreNr;
    }

    public String getDato()
    {
        return formatteretDato;
    }
    
    public int addSalgsLinje(Salgslinje s)
    {
        int nyId = 1;
        if (s.getId() == 0)
        {
            if(salgsLinjeSamling.size() > 0)
            {
                int lastIndex = salgsLinjeSamling.size()-1;
                Salgslinje lastSalgsLinje = salgsLinjeSamling.get(lastIndex);
                nyId = lastSalgsLinje.getId();
                nyId += 1;
            }
            s.setId(nyId);
        }
        salgsLinjeSamling.add(s);
        return nyId;
    }

    public Salgslinje findSalgsLinje(int id)
    {
        Salgslinje salgsLinjeObjekt = null;
        int index = 0;
        boolean found = false;
        while (index < salgsLinjeSamling.size() && !found)
        {
            salgsLinjeObjekt = salgsLinjeSamling.get(index);
            if (salgsLinjeObjekt.getId() == id)
            {
                found = true;
            }
            else
            {
                index++;
            }
        }
        if(found)
        {
            return salgsLinjeSamling.get(index);
        }
        else
        {
            return null;
        }
    }

    public ArrayList getScannet()
    {
        ArrayList<Salgslinje> salgList = new ArrayList<Salgslinje>();
        for (Salgslinje l : salgsLinjeSamling)
        {
            salgList.add(l);
        }
        return salgList;
    }

    public double totalPris()
    {
        Iterator<Salgslinje> it = salgsLinjeSamling.iterator();
        double totalPris = 0;
        while(it.hasNext())
        {
            Salgslinje linje = it.next();
            totalPris = totalPris + linje.getPris();
        }
        return totalPris;
    }

    public String printSalgsLinje()
    {
        String beskrivelse = "";
        for (Salgslinje linje : salgsLinjeSamling)
        {
            beskrivelse += linje.getBeskrivelse();
        }
        return beskrivelse;
    }




    
}
